pandas str.containsについて | 您所在的位置:网站首页 › pandas str contains › pandas str.containsについて |
この記事の目的
pandasのDataFrameの検索方法について整理 pandasとは?データ解析を容易にするためのライブラリ 私の場合、csvからデータを読みこみ、 pandasを使用してDataFrameにしていじったりします DataFrameとは?pandasでデータを扱う際の型になります DataFrameとSeriesがあります Series(シリーズ) データが1列の場合の型です DataFrame(データフレーム) データが複数列の場合の型です DataFrameから1列を抽出した場合、自動でSeriesとなります DataFrameでの検索(str.contains())今回はDataFrameでの検索方法の中で、str.contains()を使用した方法を整理しました str.containsは特定の文字を含む検索が可能です 次のようなDataFrameを例とします A B C D 0 NaN B0 C0 D0 1 B1 C1 D1 2 A1 B2 C2 D2 3 A3 B3 C3 D3 A B C D F 3 A1 B1 C4 D4 F2 5 A5 B2 C5 D5 F3 6 A0 B4 C6 D6 F6 7 A7 B6 C7 D7 F7コード import pandas as pd import numpy as np df1 = pd.DataFrame({'A': [np.NaN, '', 'A1', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}) df2 = pd.DataFrame({'A': ['A1', 'A5', 'A0', 'A7'], 'B': ['B1', 'B2', 'B4', 'B6'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', 'D6', 'D7'], 'F': ['F2', 'F3', 'F6', 'F7']}, index=[3, 5, 6, 7]) 引数ごとの動作例 regex 正規表現の指定コード # regex:True 正規表現を使用(デフォルト) result = df2[df2['A'].str.contains('A[1|0]')] # regex:False 正規表現を不使用 result = df2[df2['A'].str.contains('A[1|0]',regex = False)]結果 # regex:True A B C D F 3 A1 B1 C4 D4 F2 6 A0 B4 C6 D6 F6 # regex:False Empty DataFrame Columns: [A, B, C, D, F] Index: [] na NaNの処理指定コード # na:False NaNがある行をFalseとして扱います result = df1[df1['A'].str.contains('1',na = False)] # na:True NaNがある行をTrueとして扱います result = df1[df1['A'].str.contains('1',na = True)] print(result) # NaNがデータに存在する状態で、naを使用しないとエラーとなります try: result = df1[df1['A'].str.contains('1')] except Exception as e: print(e)結果 # na:False A B C D 2 A1 B2 C2 D2 # na:True A B C D 0 NaN B0 C0 D0 2 A1 B2 C2 D2 # na:なし Cannot mask with non-boolean array containing NA / NaN values case 大文字小文字の区別コード # case:Ture 大文字小文字を区別(デフォルト) result = df2[df2['A'].str.contains('a[1|0]')] # case:False 大文字小文字を区別しない result = df2[df2['A'].str.contains('a[1|0]',case = False)]結果 # case:Ture Empty DataFrame Columns: [A, B, C, D, F] Index: [] # case:False A B C D F 3 A1 B1 C4 D4 F2 6 A0 B4 C6 D6 F6 終わり今回はstr.containsについて、 文字だけだとイメージがつかないこともありまとめてみました |
CopyRight 2018-2019 实验室设备网 版权所有 |